package gdut.imis.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import gdut.imis.enums.SubjectEnum;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @Description 学生高考成绩档案
 * @Author JiaFu
 * @Date 2023/4/7 15:42
 */
@TableName(value = "college_entrance_examination_file")
@Data
public class CollegeEntranceExaminationFile implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 学生id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long studentId;

    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 高考省份
     */
    private String examProvince;

    /**
     * 准考证号
     */
    private String admissionNumber;

    /**
     * 总分
     */
    private Double totalScore;

    /**
     * 学科类型（0:理科；1：文科；2：物理类；3：历史类）
     */
    private SubjectEnum type;

    /**
     * 语文成绩
     */
    private Double chineseScore;

    /**
     * 数学成绩
     */
    private Double mathScore;

    /**
     * 英语成绩
     */
    private Double englishScore;

    /**
     * 物理成绩
     */
    private Double physicsScore;

    /**
     * 化学成绩
     */
    private Double chemistryScore;

    /**
     * 生物成绩
     */
    private Double biologyScore;

    /**
     * 政治成绩
     */
    private Double politicsScore;

    /**
     * 历史成绩
     */
    private Double historyScore;

    /**
     * 地理成绩
     */
    private Double geographyScore;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 逻辑删除（0：未删除；1：已删除）
     */
    private Integer idDeleted;

}
